package com.bot.nft.core.util;

import cn.hutool.extra.spring.SpringUtil;
import com.bot.common.cache.CommonCacheOperator;
import com.bot.dev.api.DevConfigApi;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.core.RedisTemplate;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 藏品编号工具
 */
public class NftCodeUtil {
    static CommonCacheOperator redisTemplate = SpringUtil.getBean(CommonCacheOperator.class);
    private static String key = "nft";

    /**
     * 向redis中放入集合
     *
     * @param nftId 藏品标识
     * @param size  编号长度
     * @return
     */
    public static Boolean setCodeList(String nftId, Integer size) {

        List<Integer> codes = new ArrayList<>();
        for (int i = 1; i < size; i++) {
            codes.add(i);
        }
        Collections.shuffle(codes);
        // 更新到缓存
        redisTemplate.put(key + nftId, codes);
        return true;
    }

    /**
     * 向redis中添加一个编号
     *
     * @param nftId 藏品标识
     * @return
     */
    public static void setLeftPush(String nftId, Integer code) {

    }

    /**
     * 从redis中弹出一个编号
     *
     * @param nftId 藏品id
     * @return 编号
     */
    public static Integer getRightPop(String nftId) {
        return 12;
    }
}
